package JDBC;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/8/25 22:10
 * 查询数据库中的记录
 */
public class JDBCSelect  {
    public static void main(String[] args) throws SQLException {
        //1.创建数据源
        DataSource dataSource =new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("1234");
        //2.获取链接
        Connection connection = dataSource.getConnection();
        //3.操作数据库
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);
        //4.执行sql,对于查询操作，需要使用executeQuery
        //查询操作返回的不是一个int，而是一个临时表
        //使用ResultSet表示和接收
        ResultSet resultSet = statement.executeQuery();

        //5.遍历结果集合（返回的临时表），先获取到每一行，在获取到这一行中的若干列
        // next方法获取到每一行记录，并把光柱后移一行
        //如果遍历到表的结束位置，此处next返回false 停止循环
//       +------+----------+
//       | id   | name     |
//       +------+----------+
//       |    3 |  李四    |
//       |    2 | 六道牛牛 |
//       |    3 | WTF      |
//      +------+----------+
        while(resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println(" id = "+id +", name = "+name);
        }
        //6.回收资源
        resultSet.close();
        statement.close();
        connection.close();
    }
}
